考題日期:2018/05/29
題號:686
星等:2
語言:C++
題目:
題意:
Goldbach猜想:對任意一個大於或等於4的偶數n,存在最少一對質數p1與p2使得n=p1+p2。
每次輸入一個數字,找出共有幾對符合Goldbach猜想的質數對。
程式:
#include <iostream>
using namespace std;
bool isPrime(int n)
{
for(int i = 2 ; i <= n/2 ; i++)
{
if(n%i==0)
return false;
}
return true;
}
int main()
{
int prime[15000], k = 1,num;
prime[0] = 2;
for(int i = 3 ; i < 32678 ; i++)
{
if(isPrime(i))
prime[k++] = i;
}
while(cin>>num && num!=0)
{
int answer = 0;
for(int i = 0 ; prime[i] <= num/2 ; i++)
{
if(isPrime(num-prime[i]))
answer++;
}
cout<<answer<<endl;
}
return 0;
}
測資: